package cn.web.tunnelrobot.dao;

import cn.web.tunnelrobot.dto.UnitInfoDTO;
import cn.web.tunnelrobot.dto.UnitInfoDTO1;
import cn.web.tunnelrobot.pojo.UnitInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface UnitInfoDao {
    //添加单位信息
    int addUnitInfo(UnitInfo unitInfo);
    //通过父节点id、单位信息名称获取单位信息
    UnitInfo getUnitInfoByName(@Param("uiParentId") Integer uiParentId,@Param("uiName") String uiName);
    //通过单位信息id获取单位信息
    UnitInfo getUnitInfoById(Integer uiId);
    //修改单位信息
    int updateUnitInfo(UnitInfo unitInfo);
    //条件查询单位信息列表
    List<UnitInfo> getUnitInfoList(@Param("uiParentId") Integer uiParentId, @Param("uiLevel") Integer uiLevel);
    //通过单位信息id删除单位信息
    int deleteUnitInfoByUiId(@Param("uiId") Integer uiId);
    //分页查询公司信息
    List<UnitInfo> getUnitInfoListCompany(@Param("companyName")String companyName,@Param("pageNo")Integer pageNo, @Param("pageSize") Integer pageSize);
    //公司信息数量
    int getUnitInfoCountCompany(@Param("companyName")String companyName);
    //分页查询分局信息列表
    List<UnitInfoDTO> getUnitInfoListBranch(@Param("id") Integer id, @Param("companyName") String companyName, @Param("branchName") String branchName,
                                            @Param("usName") String usName, @Param("pageNo") Integer pageNo, @Param("pageSize") Integer pageSize);
    //分局信息数量
    int getUnitInfoCountBranch(@Param("id") Integer id, @Param("companyName") String companyName, @Param("branchName") String branchName ,@Param("usName") String usName);
    //批量查询
    List<UnitInfo> getUnitInfoBatchList(@Param("list") List<UnitInfo> list);
    //通过父节点id、等级查询单位信息
    List<UnitInfoDTO1> getUnitInfoListReturnUnitInfoDTO1(@Param("uiParentId")Integer uiParentId,  @Param("uiLevel") Integer uiLevel);
    //通过公司id获取分局列表信息（分页）
    List<UnitInfoDTO> getUnitInfoListBranchById(@Param("id")Integer id, @Param("pageNo")Integer pageNo, @Param("pageSize") Integer pageSize);
    //通过公司id获取分局列表信息总数（分页）
    int getUnitInfoCountBranchById(@Param("id")Integer id);

    List<UnitInfo> getUnitInfoListByParentId(@Param("uiParentId")Integer uiParentId,@Param("uiLevel") Integer uiLevel);
    //通过id获取分局信息
    UnitInfo getUnitInfoBranchById(@Param("uiId")Integer uiId);
    //查询用户id负责的分局（一个用户负责一个标段-工区）
    UnitInfo getUnitInfoByUsId(@Param("usId")Integer usId);
}
